package com.reactim.message.routing;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 跨实例消息数据模型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CrossInstanceMessage {
    
    /**
     * 消息ID，用于确认和去重
     */
    private String messageId;
    
    /**
     * 源实例ID
     */
    private String sourceInstanceId;
    
    /**
     * 目标实例ID
     */
    private String targetInstanceId;
    
    /**
     * 目标用户ID
     */
    private Long userId;
    
    /**
     * 消息路由
     */
    private String route;
    
    /**
     * 消息数据（JSON格式）
     */
    private String data;
    
    /**
     * 消息类型
     */
    private String messageType;
    
    /**
     * 创建时间戳
     */
    private Long timestamp;
    
    /**
     * 重试次数
     */
    private Integer retryCount;
    
    /**
     * 是否需要确认
     */
    private Boolean requiresAck;
}